package com.arpa.wms.domain.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.arpa.wms.domain.entity.InventoryStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 盘点登记 VO
 * @author jinss
 * @date 2020-08-31 14:38:57
 **/
@Data
@ApiModel(value="CountingRegisterVO对象", description="盘点登记VO")
public class CountingRegisterVO implements Serializable {
    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    @ApiModelProperty(hidden = true)
    private Integer id;

    @ApiModelProperty(value = "所属机构")
    private String groupCode;

    @ApiModelProperty(value = "数据标识")
    private String code;

    @ApiModelProperty(value = "盘点单号")
    private String countingCode;

    @ApiModelProperty(value = "登记类型：0普通(默认)，1补登")
    private Integer registerType;

    @ApiModelProperty(value = "盘点任务号")
    private String taskCode;

    @ApiModelProperty(value = "盘点明细标识")
    private String countingItemCode;

    @ApiModelProperty(value = "商品编码")
    private String goodsCode;

    @ApiModelProperty(value = "商品编码")
    private String goodCode;

    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    @ApiModelProperty(value = "商品条码")
    private String goodsBarCode;

    @ApiModelProperty(value = "单位")
    private String goodsUnit;

    @ApiModelProperty(value = "单位名称")
    private String goodsUnitName;

    @ApiModelProperty(value = "盘点数量")
    private BigDecimal countingQuantity;

    @ApiModelProperty(value = "库存数量")
    private BigDecimal inventoryQuantity;

    @ApiModelProperty(value = "缺货数量")
    private BigDecimal stockQuantity;

    @ApiModelProperty(value = "状态")
    private String status;

    @ApiModelProperty(value = "状态")
    private String statusName;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "库位")
    private String location;

    @ApiModelProperty(value = "生产日期")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime gmtManufacture;

    @ApiModelProperty(value = "过期日期")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime gmtExpire;

    @ApiModelProperty(value = "存货日期")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime gmtStock;

    @ApiModelProperty(value = "批次号")
    private String lot;

    @ApiModelProperty(value = "收货批次号")
    private String receiveLot;

    @ApiModelProperty(value = "供应商")
    private String supplier;

    @ApiModelProperty(value = "序列号")
    private String serialNumber;

    @ApiModelProperty(value = "扩展1")
    private String extendOne;

    @ApiModelProperty(value = "扩展2")
    private String extendTwo;

    @ApiModelProperty(value = "扩展3")
    private BigDecimal extendThree;

    @ApiModelProperty(value = "扩展4")
    private BigDecimal extendFour;

    @ApiModelProperty(value = "扩展5")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime extendFive;

    @ApiModelProperty(value = "扩展6")
    @JSONField(format="yyyy-MM-dd")
    private LocalDateTime extendSix;

    @ApiModelProperty(value = "锁定状态")
    private Integer isLock;

    @ApiModelProperty(value = "库存状态")
    private String goodsStatus;

    @ApiModelProperty(value = "库存状态")
    private String goodsStatusName;

    @ApiModelProperty(value = "容器号")
    private String containerBarCode;

    @ApiModelProperty(value = "入驻商")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "库位码")
    private String locationName;

    @ApiModelProperty(value = "商品规格")
    private String spec;

    @ApiModelProperty(value = "库区")
    private String warehouseSpaceName;

    @ApiModelProperty(value = "库区")
    private String warehouseSpaceCode;

    @ApiModelProperty(value = "库存code")
    private String inventoryCode;


    @ApiModelProperty(value = "商品所属货主库存状态，PC端盘点使用")
    private List<InventoryStatus> inventoryStatuses;


    @ApiModelProperty(value = "批次规则,PC端盘点使用")
    private Map<String,Object> batchRule;


    @ApiModelProperty(value = "总数")
    private Long total;
}
